#ifndef SKYID_GEOM_H 
#define SKYID_GEOM_H

namespace SkyID
{

struct Point
{
	union
	{
		float c[2];
		struct { float x, y; };
	};
};

struct Rect
{
	union
	{
		float c[4];
		struct { Point p1, p2; };
		struct { float x, y, w, h; };
	};
};

struct Vertex
{
	union
	{
		float c[2];
		Point pos;
		struct { float x, y; };
	};
	union
	{
		float t[2];
		Point tex;
		struct { float u, v; };
	};
};

struct Color
{
	union
	{
		float c[4];
		struct { float r, g, b, a; };
	};

	// fromInteger(unsigned long color)
	// {
		// r = float(color >> 24L);
		// g = float((color >> 16L) & 0xFF);
		// b = float((color >> 8L)  & 0xFF);
		// a = float(color & 0xFF);
	// }
};

//static Color ColorWhite = {1.0f, 1.0f, 1.0f, 1.0f};
//static Color ColorBlack = {0.0f, 0.0f, 0.0f, 1.0f};

} // namespace SkyID

#endif // SKYID_GEOM_H
